CSS Assert Ruleμ λν μ’ ν© κ°μ΄λ. CSSμ μ΄μ€μ ν μ€νΈλ₯Ό ꡬννμ¬ μκ°μ μΌκ΄μ±μ 보μ₯νκ³ νκ· λ²κ·Έλ₯Ό λ°©μ§νλ κ°λ ₯ν κΈ°λ²μ μκ°ν©λλ€.
CSS Assert Rule: κ²¬κ³ ν μΉ κ°λ°μ μν μ΄μ€μ ν μ€νΈ ꡬν
λμμμ΄ μ§ννλ μΉ κ°λ° νκ²½μμ μκ°μ μΌκ΄μ±μ 보μ₯νκ³ νκ·λ₯Ό λ°©μ§νλ κ²μ λ§€μ° μ€μν©λλ€. κΈ°μ‘΄μ ν μ€νΈ λ°©λ²μ μ’ μ’ CSSμ λ―Έλ¬ν μ°¨μ΄λ₯Ό κ°κ³Όνμ¬ μ μ¬μ μΈ μκ°μ λ²κ·Έλ₯Ό κ°μ§νμ§ λͺ»νλ κ²½μ°κ° λ§μ΅λλ€. CSS Assert Ruleμ μ΄λ¬ν 격차λ₯Ό ν΄μνλ κ°λ ₯ν κΈ°μ λ‘ λ±μ₯νμΌλ©°, κ°λ°μκ° CSS μ½λλ² μ΄μ€ λ΄μμ μ§μ μ΄μ€μ ν μ€νΈλ₯Ό ꡬνν μ μλλ‘ ν©λλ€. μ΄ μ’ ν© κ°μ΄λμμλ CSS Assert Ruleμ κ°λ μ κΉμ΄ νκ³ λ€μ΄, κ²¬κ³ νκ³ μ μ§λ³΄μ κ°λ₯ν μΉ μ ν리μΌμ΄μ μ λ§λ€κΈ° μν μ΄μ , ꡬν μ λ΅ λ° λͺ¨λ² μ¬λ‘λ₯Ό μ΄ν΄λ΄ λλ€.
CSS Assert Ruleμ΄λ 무μμΈκ°?
CSS Assert Ruleμ μ£Όλ‘ Sassλ Lessμ κ°μ μ μ²λ¦¬κΈ°λ PostCSS νλ¬κ·ΈμΈμ μ¬μ©νμ¬ κ΅¬νλλ©°, κ°λ°μκ° μ€νμΌμνΈ λ΄μμ μ§μ μ΄μ€μ μ μ μν μ μκ² ν΄μ€λλ€. μ΄λ¬ν μ΄μ€μ μ νΉμ CSS μμ± κ°, μμ μ€νμΌ, λλ νΉμ ν΄λμ€μ μ‘΄μ¬ μ¬λΆκΉμ§ νμΈν μ μμ΅λλ€. μ΄μ€μ μ΄ μ€ν¨νλ©΄ μ μ¬μ μΈ μκ°μ νκ·λ CSSμ λΆμΌμΉλ₯Ό λνλ λλ€. μλ°μ€ν¬λ¦½νΈ λ‘μ§μ μ΄μ μ λ§μΆ κΈ°μ‘΄μ μ λ ν μ€νΈμ λ¬λ¦¬, CSS Assert Ruleμ μκ°μ κ³μΈ΅μ λμμΌλ‘ νμ¬ λ λλ§λ κ²°κ³Όλ¬Όμ΄ μλν λμμΈκ³Ό μΌμΉνλμ§ νμΈν©λλ€.
CSS Assert Ruleμ μ£Όμ μ΄μ
- μ΄κΈ° λ²κ·Έ κ°μ§: κ°λ° μ£ΌκΈ° μ΄κΈ°μ μκ°μ νκ·λ₯Ό μλ³νμ¬ νλ‘λμ μ λλ¬νλ κ²μ λ°©μ§ν©λλ€.
- μκ°μ μΌκ΄μ± ν₯μ: λμμΈ νμ€μ κ°μ νκ³ μ¬λ¬ λΈλΌμ°μ μ κΈ°κΈ°μμ μΌκ΄λ μ€νμΌλ§μ 보μ₯ν©λλ€.
- μλ ν μ€νΈ κ°μ: μκ°μ ν μ€νΈλ₯Ό μλννμ¬ μλ κ²μ¬μ λν μμ‘΄λλ₯Ό μ€μ΄κ³ λ€λ₯Έ μμ μ κ·μ€ν μκ°μ ν μ ν μ μμ΅λλ€.
- μ½λ νμ§ ν₯μ: κ°λ°μκ° μ€νμΌλ§κ³Ό κ·Έκ²μ΄ μ¬μ©μ μΈν°νμ΄μ€μ λ―ΈμΉλ μν₯μ λν΄ λΉνμ μΌλ‘ μκ°νλλ‘ μ₯λ €νμ¬ λ κΉ¨λνκ³ μ μ§λ³΄μνκΈ° μ¬μ΄ CSS μ½λλ₯Ό μ΄μ§ν©λλ€.
- μμ κ° μ¦κ°: λ³κ²½ μ¬νμ΄ μμμΉ λͺ»ν μκ°μ λ¬Έμ λ₯Ό μΌμΌν€μ§ μμ κ²μ΄λΌλ νμ μ κ°μ§κ³ CSS μ½λλ² μ΄μ€μ λν μμ κ°μ ꡬμΆν©λλ€.
- μ΄μμλ λ¬Έμ: μ΄μ€μ μ CSS μ€νμΌμ μμ λμμ λͺ ννκ² μ μνλ μ΄μμλ λ¬Έμ μν μ ν©λλ€.
ꡬν μ λ΅
CSS Assert Ruleμ ꡬννλ λ°λ μ¬λ¬ κ°μ§ μ κ·Ό λ°©μμ΄ μμΌλ©°, κ°κ° μ₯λ¨μ μ΄ μμ΅λλ€. λ°©λ²μ μ νμ νλ‘μ νΈμ νΉμ μꡬ μ¬νκ³Ό κ°λ°νμ μ νΈλμ λ°λΌ λ¬λΌμ§λλ€.
1. CSS μ μ²λ¦¬κΈ° μ¬μ© (Sass, Less)
Sassλ Lessμ κ°μ CSS μ μ²λ¦¬κΈ°λ λ³μ, λ―Ήμ€μΈ, ν¨μμ κ°μ κ°λ ₯ν κΈ°λ₯μ μ 곡νλ©°, μ΄λ₯Ό νμ©νμ¬ μ΄μ€μ κ·μΉμ λ§λ€ μ μμ΅λλ€. μ΄ μ κ·Ό λ°©μμ μ΄λ―Έ CSS μ μ²λ¦¬κΈ°λ₯Ό μ¬μ©νκ³ μλ νλ‘μ νΈμ μ ν©ν©λλ€.
μμ (Sass)
κΈ°λ³Έ λ²νΌμ λ°°κ²½μμ΄ #007bffμΈμ§ νμΈνκ³ μΆλ€κ³ κ°μ ν΄ λ΄
μλ€.
@function assert-equal($expected, $actual, $message: "") {
@if $expected != $actual {
@error "μ΄μ€μ
μ€ν¨: #{$message} μμ κ°: #{$expected}, μ€μ κ°: #{$actual}";
}
}
.btn-primary {
background-color: #007bff;
$expected-color: #007bff;
$actual-color: background-color;
@debug $actual-color;
@include assert-equal($expected-color, #007bff, "κΈ°λ³Έ λ²νΌ λ°°κ²½μ");
}
μ€λͺ :
assert-equalν¨μλ μμ κ°κ³Ό μ€μ κ°μ λΉκ΅ν©λλ€. μΌμΉνμ§ μμΌλ©΄ μ€λͺ μ μΈ λ©μμ§μ ν¨κ» μ€λ₯λ₯Ό λ°μμν΅λλ€..btn-primaryν΄λμ€μ κ·Έ λ°°κ²½μμ μ μν©λλ€.- κ·Έλ° λ€μ
assert-equalν¨μλ₯Ό μ¬μ©νμ¬ μ€μ λ°°κ²½μμ΄ μμ μμκ³Ό μΌμΉνλμ§ νμΈν©λλ€.
μ°Έκ³ : μ΄ μ κ·Ό λ°©μμ μ μ²λ¦¬κΈ°μ μ€λ₯ μ²λ¦¬ κΈ°λ₯μ μμ‘΄ν©λλ€. μ΄μ€μ μ΄ μ€ν¨νλ©΄ μ μ²λ¦¬κΈ°λ μ»΄νμΌ μ€μ μ€λ₯λ₯Ό λ°μμν΅λλ€.
2. PostCSS νλ¬κ·ΈμΈ μ¬μ©
PostCSSλ μλ°μ€ν¬λ¦½νΈ νλ¬κ·ΈμΈμΌλ‘ CSSλ₯Ό λ³ννλ κ°λ ₯ν λꡬμ λλ€. μ¬λ¬ PostCSS νλ¬κ·ΈμΈμ μ¬μ©νμ¬ CSS Assert Ruleμ ꡬνν μ μμΌλ©°, ν μ€νΈ νλ‘μΈμ€μ λν λ λ§μ μ μ°μ±κ³Ό μ μ΄ κΈ°λ₯μ μ 곡ν©λλ€.
μμ (postcss-assert)
postcss-assert νλ¬κ·ΈμΈμ μ¬μ©νλ©΄ μ¬μ©μ μ μ μμ±κ³Ό λ―Έλμ΄ μΏΌλ¦¬λ₯Ό μ¬μ©νμ¬ μ΄μ€μ
μ μ μν μ μμ΅λλ€.
/* νλ¬κ·ΈμΈ μ€μΉ: npm install postcss-assert */
:root {
--expected-primary-color: #007bff;
}
.btn-primary {
background-color: #007bff;
}
@media (--assert-primary-button-color) {
.btn-primary {
--actual-primary-color: var(--btn-primary-background);
--assert-equal: eval(var(--actual-primary-color) == var(--expected-primary-color));
assert: var(--assert-equal);
message: "κΈ°λ³Έ λ²νΌ λ°°κ²½μμ #007bffμ¬μΌ ν©λλ€";
}
}
μ€λͺ :
- μ¬μ©μ μ μ μμ±(
--expected-primary-color)μ μ¬μ©νμ¬ μμ λ°°κ²½μμ μ μν©λλ€. .btn-primaryν΄λμ€μ λ°°κ²½μμ μ μ©ν©λλ€.- μ¬μ©μ μ μ μμ±(
--assert-primary-button-color)μ΄ μλ λ―Έλμ΄ μΏΌλ¦¬λ₯Ό μ¬μ©νμ¬ μ΄μ€μ λ‘μ§μ μΊ‘μνν©λλ€. - λ―Έλμ΄ μΏΌλ¦¬ λ΄μμ μ¬μ©μ μ μ μμ±(
--actual-primary-color)μ μ μνμ¬ μ€μ λ°°κ²½μμ μ μ₯ν©λλ€. eval()ν¨μλ₯Ό μ¬μ©νμ¬ μμ μμκ³Ό μ€μ μμμ λΉκ΅νκ³ κ²°κ³Όλ₯Ό--assert-equalμ¬μ©μ μ μ μμ±μ μ μ₯ν©λλ€.- κ·Έλ° λ€μ
assertμμ±μ μ¬μ©νμ¬--assert-equalκ°μ λ°λΌ μ΄μ€μ μ νΈλ¦¬κ±°ν©λλ€. messageμμ±μ μ΄μ€μ μ΄ μ€ν¨ν λ μ€λͺ μ μΈ λ©μμ§λ₯Ό μ 곡ν©λλ€.
ꡬμ±:
// postcss.config.js
module.exports = {
plugins: [
require('postcss-assert')({
// μ΅μ
(μ ν μ¬ν)
})
]
}
3. μλ°μ€ν¬λ¦½νΈ κΈ°λ° ν μ€νΈ νλ μμν¬ μ¬μ© (μ: Jest, Cypress)
CSS Assert Ruleμ μ£Όλ‘ CSS λ΄ μ΄μ€μ μ μ€μ μ λμ§λ§, Jest λ° Cypressμ κ°μ μλ°μ€ν¬λ¦½νΈ κΈ°λ° ν μ€νΈ νλ μμν¬λ₯Ό ν΅ν©νμ¬ λ ν¬κ΄μ μΈ μκ°μ ν μ€νΈλ₯Ό μνν μ μμ΅λλ€. μ΄λ¬ν νλ μμν¬λ₯Ό μ¬μ©νλ©΄ μ»΄ν¬λνΈλ νμ΄μ§λ₯Ό λ λλ§ν λ€μ μ΄μ€μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ¬ νΉμ CSS μ€νμΌμ νμΈν μ μμ΅λλ€.
μμ (Cypress)
// cypress/integration/button.spec.js
describe('λ²νΌ μ€νμΌ', () => {
it('μ¬λ°λ₯Έ λ°°κ²½μμ κ°μ ΈμΌ ν©λλ€', () => {
cy.visit('/button'); // /button κ²½λ‘κ° μλ€κ³ κ°μ ν©λλ€
cy.get('.btn-primary')
.should('have.css', 'background-color', 'rgb(0, 123, 255)'); // #007bffμ λμΌ
});
});
μ€λͺ :
- μ΄ μμ λ Cypressλ₯Ό μ¬μ©νμ¬ κΈ°λ³Έ λ²νΌ(
.btn-primary)μ΄ ν¬ν¨λ νμ΄μ§λ₯Ό λ°©λ¬Έν©λλ€. - κ·Έλ° λ€μ
should('have.css', 'background-color', 'rgb(0, 123, 255)')μ΄μ€μ μ μ¬μ©νμ¬ λ²νΌμ λ°°κ²½μμ΄ μμ κ°κ³Ό μΌμΉνλμ§ νμΈν©λλ€.
μ°Έκ³ : μ΄ μ κ·Ό λ°©μμ ν μ€νΈ νκ²½κ³Ό ν μ€νΈν μ»΄ν¬λνΈ λλ νμ΄μ§λ₯Ό λ λλ§νλ λ°©λ²μ ν¬ν¨νμ¬ λ 볡μ‘ν μ€μ μ΄ νμν©λλ€. κ·Έλ¬λ ν μ€νΈ νλ‘μΈμ€μ λν λ λ§μ μ μ°μ±κ³Ό μ μ΄ κΈ°λ₯μ μ 곡ν©λλ€.
CSS Assert Rule ꡬνμ μν λͺ¨λ² μ¬λ‘
CSS Assert Ruleμ ν¨κ³Όμ μΌλ‘ ꡬννλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμμμ€:
- μκ² μμνκΈ°: νκ·κ° λ°μνκΈ° μ¬μ΄ μ€μν μ»΄ν¬λνΈλ μ€νμΌμ λν μ΄μ€μ μ ꡬννλ κ²μΌλ‘ μμνμμμ€.
- λͺ ννκ³ κ°κ²°ν μ΄μ€μ μμ±νκΈ°: μ΄μ€μ μ λͺ©μ κ³Ό μ€ν¨ μ λ°μν΄μΌ νλ μν©μ λͺ ννκ² μ€λͺ νλ μ€λͺ μ μΈ λ©μμ§λ₯Ό μ¬μ©νμμμ€.
- μ£Όμ μκ°μ μμ±μ μ§μ€νκΈ°: μμ, κΈκΌ΄, κ°κ²©, λ μ΄μμκ³Ό κ°μ΄ μ¬μ©μ μΈν°νμ΄μ€μ μ§μ μ μΈ μν₯μ λ―ΈμΉλ μμ±μ λν μ΄μ€μ μ μ°μ μνμμμ€.
- λ³μ λ° λ―Ήμ€μΈ μ¬μ©νκΈ°: CSS μ μ²λ¦¬κΈ° κΈ°λ₯μΈ λ³μμ λ―Ήμ€μΈμ νμ©νμ¬ μ¬μ¬μ© κ°λ₯ν μ΄μ€μ κ·μΉμ λ§λ€κ³ μ½λ μ€λ³΅μ μ€μ΄μμμ€.
- CI/CD νμ΄νλΌμΈκ³Ό ν΅ν©νκΈ°: CI/CD νμ΄νλΌμΈμ μΌλΆλ‘ CSS ν μ€νΈλ₯Ό μλννμ¬ λ³κ²½ μ¬νμ΄ λ°°ν¬ μ μ μλμΌλ‘ κ²μ¦λλλ‘ νμμμ€.
- μ΄μ€μ μ μ§ λ° μ λ°μ΄νΈνκΈ°: CSS μ½λλ² μ΄μ€κ° λ°μ ν¨μ λ°λΌ μ κΈ°μ μΌλ‘ μ΄μ€μ μ κ²ν νκ³ μ λ°μ΄νΈνμ¬ λ³κ²½ μ¬νμ λ°μνκ³ κ΄λ ¨μ±μ μ μ§νλλ‘ νμμμ€.
- κ³Όλν μ΄μ€μ νΌνκΈ°: λ무 λ§μ μ΄μ€μ μ λ§λ€λ©΄ ν μ€νΈ νλ‘μΈμ€κ° λλ¦¬κ³ λ²κ±°λ‘μμ§ μ μμ΅λλ€. CSSμ κ°μ₯ μ€μν μΈ‘λ©΄μ μ§μ€νμμμ€.
- λΈλΌμ°μ νΈνμ± κ³ λ €νκΈ°: μ΄μ€μ μ μμ±ν λ, νΉν μ¬λ¬ λΈλΌμ°μ μμ λ€λ₯΄κ² λ λλ§λ μ μλ μμ±μ λν΄ λΈλΌμ°μ νΈνμ±μ μΌλμ λμμμ€.
- μλ―Έ μλ λ©μμ§ μ¬μ©νκΈ°: μ€λ₯ λ©μμ§κ° κ°λ°μλ₯Ό κ·Όλ³Έ μμΈμΌλ‘ μλ΄νλλ‘ νμμμ€. μΌλ°μ μΈ 'μ΄μ€μ μ€ν¨' λμ 'λ²νΌ λμ΄λ 40pxμ¬μΌ νμ§λ§ μ€μ λ 38pxμ λλ€'μ κ°μ λ©μμ§λ₯Ό μ 곡νμΈμ.
μ€μ μλ리μ€μμμ CSS Assert Rule μμ
CSS Assert Ruleμ΄ μ€μ μλ리μ€μμ μ΄λ»κ² μ μ©λ μ μλμ§ λͺ κ°μ§ μ€μ©μ μΈ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€:
1. μΌκ΄λ μμ νλ νΈ λ³΄μ₯
μΌλ°μ μΈ μꡬ μ¬νμ μΉμ¬μ΄νΈλ μ ν리μΌμ΄μ μ 체μμ μΌκ΄λ μμ νλ νΈλ₯Ό μ μ§νλ κ²μ λλ€. CSS Assert Ruleμ μ¬μ©νμ¬ νΉμ μμκ° μ¬λ°λ₯Έ μμμ μ¬μ©νκ³ μλμ§ νμΈν μ μμ΅λλ€.
// Sass μμ
$primary-color: #007bff;
$secondary-color: #6c757d;
.button-primary {
background-color: $primary-color;
color: white;
@include assert-equal($primary-color, background-color, "κΈ°λ³Έ λ²νΌ λ°°κ²½μ");
}
.button-secondary {
background-color: $secondary-color;
color: white;
@include assert-equal($secondary-color, background-color, "보쑰 λ²νΌ λ°°κ²½μ");
}
2. νμ΄ν¬κ·ΈλνΌ μ€νμΌ κ²μ¦
νμ΄ν¬κ·ΈλνΌλ μ¬μ©μ κ²½νμμ μ€μν μν μ ν©λλ€. CSS Assert Ruleμ μ¬μ©νμ¬ μ λͺ©, λ¨λ½ λ° κΈ°ν ν μ€νΈ μμκ° μ¬λ°λ₯Έ κΈκΌ΄ λͺ¨μ, ν¬κΈ° λ° λκ»λ₯Ό μ¬μ©νκ³ μλμ§ νμΈν μ μμ΅λλ€.
// Sass μμ
$heading-font-size: 24px;
$paragraph-font-size: 16px;
h1 {
font-size: $heading-font-size;
@include assert-equal($heading-font-size, font-size, "μ λͺ© κΈκΌ΄ ν¬κΈ°");
}
p {
font-size: $paragraph-font-size;
@include assert-equal($paragraph-font-size, font-size, "λ¨λ½ κΈκΌ΄ ν¬κΈ°");
}
3. κ°κ²© λ° λ μ΄μμ νμΈ
μΌκ΄λ κ°κ²©κ³Ό λ μ΄μμμ μκ°μ μΌλ‘ λ§€λ ₯μ μ΄κ³ μ¬μ©μ μΉνμ μΈ μΈν°νμ΄μ€λ₯Ό λ§λλ λ° νμμ μ λλ€. CSS Assert Ruleμ μ¬μ©νμ¬ μμκ° μ¬λ°λ₯΄κ² μ λ ¬λκ³ κ°κ²©μ΄ μ§μ λμλμ§ νμΈν μ μμ΅λλ€.
// Sass μμ
$grid-gutter: 20px;
.grid-item {
margin-right: $grid-gutter;
@include assert-equal($grid-gutter, margin-right, "그리λ μμ΄ν
μ€λ₯Έμͺ½ μ¬λ°±");
}
4. λ°μν λμμΈ κ²μ¦
λ°μν λμμΈμμλ νλ©΄ ν¬κΈ°μ λ°λΌ μ€νμΌμ΄ μμ£Ό λ³κ²½λ©λλ€. λ―Έλμ΄ μΏΌλ¦¬ λ΄μ μ΄μ€μ μ λ°°μΉνμ¬ λ€λ₯Έ μ€λ¨μ μμ μ¬λ°λ₯Έ μ€νμΌμ΄ μ μ©λλμ§ νμΈν μ μμ΅λλ€.
// Sass μμ
$mobile-font-size: 14px;
$desktop-font-size: 16px;
p {
font-size: $desktop-font-size;
@media (max-width: 768px) {
font-size: $mobile-font-size;
@include assert-equal($mobile-font-size, font-size, "λͺ¨λ°μΌ λ¨λ½ κΈκΌ΄ ν¬κΈ°");
}
@media (min-width: 769px) {
@include assert-equal($desktop-font-size, font-size, "λ°μ€ν¬ν λ¨λ½ κΈκΌ΄ ν¬κΈ°");
}
}
κ³ κΈ κΈ°μ λ° κ³ λ € μ¬ν
1. κ³μ°λ κ° ν μ€νΈ
λλ‘λ CSS μμ±μ μ νν κ°μ 미리 μ μ μκ³ κ³μ°μ λ°λΌ λ¬λΌμ§λλ€. μ΄λ¬ν κ²½μ° κ³μ° κ²°κ³Όμ λν΄ μ΄μ€μ μ λ§λ€ μ μμ΅λλ€.
2. μ¬μ©μ μ μ λ§€μ² μ¬μ©
λ¬Έμμ΄μμ νΉμ ν¨ν΄μ μ‘΄μ¬λ₯Ό νμΈνλ κ²κ³Ό κ°μ 볡μ‘ν μ΄μ€μ μ κ²½μ° μ¬μ©μ μ μ λ§€μ²λ₯Ό λ§λ€ μ μμ΅λλ€.
3. μ±λ₯ κ³ λ € μ¬ν
CSS Assert Ruleμ μλΉν μ΄μ μ μ 곡νμ§λ§ μ±λ₯μ μΌλμ λλ κ²μ΄ μ€μν©λλ€. κ³Όλν μ΄μ€μ μ νΉν λκ·λͺ¨ νλ‘μ νΈμμ μ»΄νμΌ νλ‘μΈμ€λ₯Ό λλ¦¬κ² ν μ μμ΅λλ€. λ°λΌμ μ² μ ν¨κ³Ό μ±λ₯ μ¬μ΄μ κ· νμ λ§μΆλ κ²μ΄ μ€μν©λλ€.
4. μ μ μ€νμΌ λ¦¬μ μ μν₯
normalize.cssλ reset.cssμ κ°μ μ μ μ€νμΌ λ¦¬μ μ΄ μ΄μ€μ μ λ―ΈμΉλ μν₯μ κ³ λ €νμμμ€. μ΄μ€μ μ΄ μ΄λ¬ν 리μ μ μν΄ μ μλ κΈ°μ€ μ€νμΌμ κ³ λ €νλμ§ νμΈνμμμ€.
5. CSS λͺ μλ μΆ©λ
CSS λͺ μλλ μμμΉ λͺ»ν κ²°κ³Όλ₯Ό μ΄λν μ μμ΅λλ€. μ΄μ€μ μ΄ μ€ν¨νλ©΄ ν μ€νΈ μ€μΈ μ€νμΌμ λͺ μλλ₯Ό λ€μ νμΈνμμμ€.
κ²°λ‘
CSS Assert Ruleμ μΉ μ ν리μΌμ΄μ μμ μκ°μ μΌκ΄μ±μ 보μ₯νκ³ νκ·λ₯Ό λ°©μ§νλ λ° μ μ©ν κΈ°μ μ λλ€. CSS μ½λλ² μ΄μ€ λ΄μ μ§μ μ΄μ€μ μ ꡬνν¨μΌλ‘μ¨ κ°λ° μ£ΌκΈ° μ΄κΈ°μ μ μ¬μ μΈ μκ°μ λ²κ·Έλ₯Ό ν¬μ°©νκ³ μ½λ νμ§μ κ°μ νλ©° CSSμ λν μμ κ°μ ꡬμΆν μ μμ΅λλ€. CSS μ μ²λ¦¬κΈ°, PostCSS νλ¬κ·ΈμΈ λλ μλ°μ€ν¬λ¦½νΈ κΈ°λ° ν μ€νΈ νλ μμν¬ μ€ μ΄λ κ²μ μ ννλ , ν΅μ¬μ CSS ν μ€νΈμ μΌκ΄λκ³ μ²΄κ³μ μΈ μ κ·Ό λ°©μμ μ±ννλ κ²μ λλ€. μΉ κ°λ° νκ²½μ΄ κ³μ λ°μ ν¨μ λ°λΌ CSS Assert Ruleμ μνν μ¬μ©μ κ²½νμ μ 곡νλ κ²¬κ³ νκ³ μ μ§λ³΄μ κ°λ₯ν μΉ μ ν리μΌμ΄μ μ λ§λλ λ° μ μ λ μ€μν μν μ ν κ²μ λλ€.